const path=require('path')
const fs=require('fs')

const Koa=require('koa');
const {koaBody}=require('koa-body');
const KoaStatic=require('koa-static')
const parameter = require('koa-parameter');

const errHandler = require('./errHandler')

// const userRouter=require('../router/user.route')
// const goodsRouter=require('../router/goods.route')
const router=require('../router')
const app=new Koa()


// 检查上传目录是否存在，如果不存在则创建它
const uploadDir = path.join(__dirname, '../uploads');
if (!fs.existsSync(uploadDir)) {
    fs.mkdirSync(uploadDir, { recursive: true });
}
app.use(koaBody({
    multipart:true, //支持文件上传
    formidable:{
        //在配置选项option里，不推荐使用相对路径，因为相对路径是相对于当前文件的路径，而不是相对于服务器的路径。
        // 所以，在配置选项option里，推荐使用绝对路径。
        uploadDir:uploadDir, //文件上传目录
        keepExtensions:true ,//保留后缀
       
    },
    parsedMethods: ['POST', 'PUT', 'PATCH', 'DELETE'], //支持的请求方法
}))
app.use(KoaStatic(path.join(__dirname,'../uploads'))) //静态资源目录


app.use(parameter(app)) //参数校验
// app.use(userRouter.routes())
// app.use(goodsRouter.routes())
app.use(router.routes())
app.use(router.allowedMethods())//解决options请求




//统一错误处理
app.on('error',errHandler)
module.exports=app